package com.stx.jeepay.core.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.stx.jeepay.core.entity.RefundOrderEntity;


import java.util.Map;

/**
 * 退款订单表
 *
 * @author suntingxing
 * @email 1@gmail.com
 * @date 2023-09-11 13:05:22
 */
public interface RefundOrderService extends IService<RefundOrderEntity> {

    /** 查询商户订单 **/
    RefundOrderEntity queryMchOrder(String mchNo, String mchRefundNo, String refundOrderId);

    /** 更新退款单状态  【退款单生成】 --》 【退款中】 **/
    boolean updateInit2Ing(String refundOrderId, String channelOrderId);

    /** 更新退款单状态  【退款中】 --》 【退款成功/退款失败】 **/
    boolean updateIng2SuccessOrFail(String refundOrderId, Byte updateState, String channelOrderNo,
                                    String channelErrCode, String channelErrMsg);

    /** 更新退款单状态  【退款中】 --》 【退款成功】 **/
    boolean updateIng2Success(String refundOrderId, String channelOrderId);

    /** 更新退款单状态  【退款中】 --》 【退款失败】 **/
    boolean updateIng2Fail(String refundOrderId, String channelOrderId, String channelErrCode, String channelErrMsg);

    /** 更新退款单为 关闭状态 **/
    int updateOrderExpired();

    IPage<RefundOrderEntity> pageList(IPage iPage, LambdaQueryWrapper<RefundOrderEntity> queryWrapper, RefundOrderEntity refundOrder, JSONObject paramJSON);
}

